Method and arrangement for adaptive rate control

ABSTRACT

The present invention aims at enabling adaptive rate control, ARC, in a packet switched network, the ARC also being adapted to the requirements of a specific application. The arrangement for adaptive rate control of a connection between a sender and a receiver in a packet switched data network includes: A generic control elements for performing adaptive rate control according to a generic algorithm, the arrangement being characterized by at least one application specific control element, the application-specific control element being arranged to control the function of the generic control element in dependence of the characteristics of the application.

TECHNICAL FIELD

The present invention relates to a method for adaptive control of thetransmission in a packet data network, as defined in the preamble ofclaim 1. The invention also relates to an apparatus for adaptive controlof the transmission rate in a packet data network.

BACKGROUND

In packet data networks, a sender transmits digital packet data to oneor more receivers through a network. The network may be, for example, aninternet, following the Internet Protocol (IP) standard, and comprisingIP routers and switches connected by digital communication links. Thesender and the receiver are connected to the network by means ofwireless or wireline access links using, for example, Asymmetric DigitalSubscriber Line (ADSL), Public Switched Telephone Network (PSTN) modems,cable modems, General Packet Radio System (GPRS), Universal MobileTelecommunication System (UMTS) or Edge access technologies.Communication protocols used include reliable protocols such asTransport Control Protocol (TCP) or unreliable protocols such as UserDatagram Protocol (UDP).

The access links and network enabling a sender to send data to areceiver is referred to as a channel in this document. The access linksand network enabling the receiver to send data, such as acknowledgementof received data, to the sender is called a back-channel.

The channel and the back-channel have limited bandwidth and may sufferfrom latency and packet loss. The amount of latency and packet lossdepends on the network and the access technologies used and may betime-dependent. Latency is caused, for example, by buffering andcongestion and packet loss may be caused, for example, by bit errors onaccess links or overflowing buffers in routers.

The sender could send several classes of application data to thereceiver. These data classes may be, for example video, audio and textdata in a media streaming application or different layers of layeredvideo codec in a scaleable video conferencing application. In amultiplayer game data descriptions of properties of different objects inthe game could be different data classes.

The users may wish to communicate different application data classeswith different priorities in case of bandwidth limitations, delays orcongestion in the channel. In a media streaming application the usersmay wish to give audio priority over video. In a scaleable videoconferencing application the users may wish to give the basic layerpriority over enhancement layers. In a multiplayer game users may wishto give focus objects priority over peripheral objects.

To minimize the impact of limited bandwidth, congestion, latency andpacket loss on the end-user experience of the application, it isbeneficial to apply rate control that is adapted to the requirements orpriorities of each application. Rate control means that the sender sendsdata in order of priority and regulates the rate so that the availablebandwidth is used while avoiding sending too much. Sending more datathan the channel can handle causes high latency or high packet loss. Therate control should adapt to variations in the properties of thechannel, such as variations in the available bandwidth. Such ratecontrol that respects application priorities and adapts to variations inthe properties of the channel is here called Adaptive Rate Control(ARC). TCP and Differentiated Services provides some of these functions,but not all. For example, TCP does not prioritize between differentclasses of application data. Differentiated services do not adapt tovariations in the channel capacity.

It is difficult to specify one single algorithm or method for ARC thatworks well in all communication systems. Different channels behavedifferently. As an example, consider how communication latency dependson the data rate. In some channels (for example a congested PSTN modemlink) the latency is reduced if the data rate is reduced. In a differentchannel (for example a GPRS link) the latency may be reduced in somesituations if the data rate is increased. Also, GPRS performance differsbetween different implementations and versions Different applicationsmay also have different requirements. For example, a video streamingapplication accepts latency but requires high throughput, whereas areal-time multiplayer game might accept low throughput but requires lowlatency on at least the most important objects.

The proliferation of networks, access links, applications and userpreferences makes it virtually impossible to design one single ARCmethod that works optimally under all conditions. One solution would beto implement one solution for each channel/application combination. Thiswould be a cumbersome and expensive solution, which would increase thecost of application development and of communication systems.

OBJECT OF THE INVENTION

It is an object of the present invention to enable ARC in a packetswitched network, the ARC also being adapted to the requirements of aspecific application.

SUMMARY OF THE INVENTION

This object is achieved according to the invention by an arrangement foradaptive rate control of a connection between a sender and a receiver ina packet switched data network, said arrangement comprising

-   -   A generic control means for performing adaptive rate control        according to a generic algorithm, said arrangement being        characterized by    -   At least one application specific control means, said        application-specific control means being arranged to control the        function of the generic control means in dependence of the        characteristics of the application.

The invention, therefore, enables application-specific control withoutthe need to provide a complete control means for each application.Instead, a generic control means is provided, which can be controlled bydifferent application-specific control means to adapt to the needs ofdifferent applications.

The object is also achieved by computer program product for adaptiverate control in a packet data network, said product comprising computerreadable code means which, when run on a computer is arranged to receivefrom an application-specific control means at least one configurationparameter in order to control the function of the computer programproduct.

This computer program product is comprised in the generic control meansabove.

The object is also achieved by computer program product for adaptiverate control in a packet data network, said product comprising computerreadable code means which, when run on a computer causes the computer toprovide at least one configuration parameter to a generic control meansfor adaptive rate control, in order to control the adaptive rate controlprovided by the generic control means.

This computer program product is comprised in the application-specificcontrol means above.

Preferably, the generic control means is controlled by at least oneconfiguration parameter and said application-specific control means isarranged to provide the at least one configuration parameter to thegeneric control means for controlling the function of the genericcontrol means.

The generic control means may also be arranged to monitor the quality ofthe rate control and output a set of quality data indicative of suchquality. The set of quality data typically includes measurements oflatency and/or packet loss. The set of quality data is preferablyprovided to the application-specific control means and used by theapplication-specific control means to set the at least one configurationparameter.

In a preferred embodiment, the generic control means is implemented inat least one network server and in low-level client software, and theapplication-specific control means is implemented as anapplication-level software module.

The application-specific control means may be made dependent on the typeof channel used for the connection.

The arrangement according to the invention enables the adaptive ratecontrol to be set individually for each application. It may also beadapted to the type of channel used. It therefore solves the problem ofproviding a generic implementation in network servers and in low-levelclient software while at the same time providing for adaptation to theabundance of channel types and applications with very differentbehaviour and requirements. The invention is based on the recognition ofthe fact that at least a part of the ARC must be implemented inlow-level software such as communication protocol stacks.

With the arrangement and computer programs according to the invention,it is possible to adapt to different user preferences, application typesand different channel behaviour without changing communicationprotocols, server side functions or low-level protocol functions on theclient side. All specific adaptation occurs in high-level software,preferably on the client side.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be described in more detail in the following,with reference to the appended drawings, in which:

FIG. 1 illustrates the context in which the invention is used;

FIG. 2 illustrates the inventive division of the control functions in ageneric and a specific part;

FIG. 3 illustrates an embodiment of the inventive adaptive rate controlarrangement.

DETAILED DESCRIPTION OF EMBODIMENTS

FIG. 1 illustrates, very simplified, the technical context of theinvention. A sender, for example, a client terminal, 1 transmits data toa receiver 3 through a channel 5. The receiver may be, for example, anetwork server. The channel 5 constituting the access links and networkenabling the sender 1 to send data to the receiver. Typically, each ARCsender/receiver pair will set up a communication link serving as aback-channel 7 for the ARC sender-receiver pair that forms thecommunication link in the opposite direction. The access links andnetwork enabling the receiver to send data, such as acknowledgement ofreceived data, to the sender is called a back-channel 7.

FIG. 2 provides a logical view of the invention showing the logicalunits and the exchange of control data. The logical functionsApplication, G-ARC and S-ARC may be distributed between the sending andthe receiving units in many different ways. The arrangement for adaptiverate control comprises a generic part G-ARC and an application-specificpart S-ARC. The generic part G-ARC controls the function of the channel5. G-ARC performs rate control according to a generic algorithm. Thegeneric algorithm may be based on any adaptive rate control algorithmfor example, the leaky bucket algorithm. The behaviour of the genericalgorithm is controlled by a set of ARC configuration parameters. S-ARCcontrols G-ARC by setting the ARC configuration parameters. This controlalgorithm can be specific for the user preferences, the application typeand the channel.

The application-specific part S-ARC may also communicate with anapplication 11 and a managing unit 13. The application providesinstructions to the application-specific part S-ARC thus indirectlycontrolling the function of the adaptive rate control.

Although FIG. 2 only shows one, several application-specific parts S-ARCmay exist on the same level, each adapted to, and controlled by, one ormore applications The sender algorithm and the receiver algorithm arecontrolled by the ARC configuration parameters, which may include, forexample, the recommended bandwidth of the output stream of datagramsfrom the sender side.

Typically, the generic control means G-ARC receives ARC configurationparameters from one of the application-specific control means.Alternatively the generic control means may include hard-wired defaultvalues of the ARC configuration parameters. It may also receive defaultvalues of the ARC configuration parameters from the managing unit 13before the communication session is started.

G-ARC monitors the quality of the rate control and outputs a set of datathat shows how well the rate is controlled. This set of data is calledARC statistics and may include, for example, measurements of latency andpacket loss. The application-specific part S-ARC receives ARC statisticsfrom G-ARC. The generic part G-ARC may also perform quality analysisregarding the function of the adaptive rate control. The result of thisanalysis may be transmitted to the application-specific part as qualitydata. This quality data, that is, ARC statistics, may be sent to theapplication-specific part, which will in this case determine how therate control should be affected.

The discussions of the different units in FIG. 2 also apply to FIG. 3,and vice versa.

FIG. 3 shows a system according to the invention wherein a sendercommunicates with a receiver across a channel, as shown in FIG. 1. Theclient includes both an ARC sender and an ARC receiver. The networkserver includes both an ARC sender and an ARC receiver. Each ARC senderand ARC receiver comprises a generic part and may also comprise anapplication-specific part. Each ARC sender communicates with thecorresponding ARC receiver across the channel. Typically, each ARCsender-receiver-pair will set up a communication link that serves as aback-channel (not shown in FIG. 3) for the ARC sender-receiver pair thatforms the communication link in the opposite direction. The back-channelwill be used for communicating data such as acknowledgements and qualitydata. FIG. 3 only shows one sender-receiver pair.

FIG. 3 shows the detailed structure of an ARC sender/receiver pair. Inthis Figure a sending application 21 transmits data to a receivingapplication 23 through a channel 25. It is assumed that the sender sidehas a sender generic control means 27 and an application-specificcontrol means 29, while the receiver side has a receiver generic controlmeans 31. The sender generic control means 27 performs the generic partof the ARC algorithm at the sender side and the receiver generic controlmeans 31 performs the generic part of the ARC algorithm at the receiverside.

In FIG. 3 the application-specific control means 29 is located at thesender side, but the following four configurations are possible:

-   -   The sender side has an application-specific control means that        controls both generic control means 27, 31. The receiver side        does not have application-specific control means.    -   The receiver side has an application-specific control means that        controls both generic control means 27, 31. The sender side does        not have application-specific control means.    -   The sender and the receiver side each has an        application-specific control means that share the control of        both generic control means 27, 31.

No application-specific part is included in either the sender or thereceiver side. This is a special case where no application-specificcontrol is used. This is the case, for example for TCP communication.

On the sender side the generic control means 27 receives an input streamof datagrams from the application that uses the adaptive rate control.Each datagram may carry a tag that shows how it should be handled. Thetag may include a priority level and/or an indicator showing if thedatagram should be sent reliably or unreliably.

The sender generic control means 27 processes the stream of datagramsaccording to the algorithm provided for the sender generic control means27 and produces an output stream of datagrams that is sent to thereceiver generic control means 31. The output stream of datagrams isadapted to the capabilities of the channel, the priority of eachdatagram and the reliable/unreliable status of each datagram.Communication protocol stacks often include designs where datagramsbelonging to a lower protocol level are transmitted as payload indatagrams belonging to a higher protocol level. Sending severaldatagrams as payload in a higher-level datagram is called aggregation ofdatagrams. Aggregating many datagrams in one big datagram will give ahigh throughput but also a high latency. The G-ARC sender couldoptionally control aggregation to find the right balance betweenthroughput and latency.

If the input stream of datagrams is too fast, the sender generic controlmeans will drop the lowest priority unreliable datagrams and output astream of datagrams that can be communicated across the channel withoutcausing congestion. The input stream for datagrams may also be reorderedso that high-priority datagrams are sent before low-priority datagrams.Reliable datagrams may be resent if they are lost.

The receiver generic control means 31 receives a stream of datagramsfrom the sender generic control means 27 through the channel 25. Thereceiver generic control means 31 processes the received datagramsaccording to the algorithm provided for this function and forwardscorrectly received datagrams to the application. The receiver genericcontrol means 31 may request resending of missing reliable datagrams.

The application-specific control means 29 is arranged to set certainparameters, called ARC configuration parameters in the generic controlmeans 27, 31 thus determining how the generic control means 27, 31 areto control the rate in dependence of the needs of the application. Anexample of an ARC configuration parameter is the recommended bandwidthof the output stream of datagrams from the G-ARC sender. It preferablyalso receives ARC statistics from the generic control means. It may alsoreceive further parameters and settings from the application. Forexample, the application may provide application instructions toprioritize high throughput at the price of high latency, or vice versa.The application-specific control means employs an algorithm that shouldbe based on a model of the channel and on understanding of therequirements of the application.

The algorithm in the application-specific control means generating theARC configuration parameters uses ARC statistics as input. ARCstatistics gives full or partial information on how well thecommunication between the sender and the receiver is going. Typicalelements of ARC statistics are:

-   -   A measure of packet loss in the channel for all packets, or        optionally for each application data class.    -   A measure of latency in the channel, optionally for each        application data class Information on actions performed by the        generic control means algorithm such as partial or complete        dropping of packets in certain application data classes.

To illustrate the advantages of the invention, consider a situationwhere an application service provider wishes to deliver the same serviceto customers of many different GPRS operators. The properties ofdifferent GPRS networks are very different. The application serviceprovider delivers the same system including application servers andclient software to all GPRS operators. This system includes the genericrate control means G-ARC. Different versions of the application-specificcontrol means S-ARC can then be downloaded as Java programs by theend-users. Each user gets a version of S-ARC that is appropriate for thespecific properties of the local GPRS service.

Further, consider a situation where several game developers delivergames to a 3G wireless operator. Different game genres require differentARC solutions. A turn-based massive multiplayer game requires high andreliable throughput, while a fighting game requires low latency. Theoperator wishes to avoid any involvement in game specific details. G-ARCis implemented in the operator's network and in the wireless terminals.Each game developer writes an S-ARC module that tailors ARC to performoptimally for the specific game.

A third example would be a popular multimedia chat applicationattracting billions of users. Operators and network equipment providerswant to gain a competitive edge by showing that the popular chatapplication performs best in their network. An operator or networkequipment provider could use detailed knowledge of how their network isbuilt to write an S-ARC optimizing the performance of the chatapplication in their specific network. The S-ARC could then bedistributed to the operator's customer.

1. An arrangement for adaptive rate control of when packets are to betransmitted in a connection between a sender and a receiver in a packetswitched data network, said arrangement comprising generic control means(G-ARC; 27, 31) arranged in the sender and the receiver, for performingadaptive rate control according to a generic algorithm and at least oneapplication specific control means (S-ARC; 29) to control the functionof the generic control means (G-ARC; 27, 31) in dependence of thecharacteristics of the application, said arrangement being characterizedin that the application-specific control means (S-ARC; 29) is arrangedin the receiver to enable application specific control of thecommunication performed on the receiver side.
 2. An arrangementaccording to claim 1, wherein the generic control means (G-ARC; 27, 31)is controlled by at least one configuration parameter and saidapplication-specific control means (S-ARC; 29) is arranged to providethe at least one configuration parameter to the generic control meansfor controlling the function of the generic control means.
 3. Anarrangement according to claim 1 wherein the generic control means(G-ARC; 27, 31) is arranged to monitor the quality of the rate controland output a set of quality data indicative of such quality.
 4. Anarrangement according to claim 3, wherein the set of quality dataincludes measurements of latency and/or packet loss.
 5. An arrangementaccording to claim 1, wherein the set of quality data is provided to theapplication-specific control means (S-ARC; 29) and used by theapplication-specific control means (S-ARC; 29) to set the at least oneconfiguration parameter.
 6. An arrangement according to claim 1, whereinthe generic control means (G-ARC; 27, 31) is implemented in at least onenetwork server and in low-level client software.
 7. An arrangementaccording to claim 1, wherein the application-specific control means(S-ARC; 29) is implemented as an application-level software module. 8.An arrangement according to claim 1, wherein the application-specificcontrol means (S-ARC; 29) is dependent on the type of channel (5) usedfor the connection.
 9. A computer program product intended for use in areceiver of communication in a packetbased data network, for adaptiverate control performed at the receiving side in a packet data network,said product comprising computer readable code means which, when run ona computer causes the computer to provide at least one configurationparameter to a generic control means for adaptive rate control, in orderto control the adaptive rate control provided by the generic controlmeans.
 10. A computer program product according to claim 9, wherein theARC statistics data includes measurements of latency and/or packet loss.11. A computer program product intended for use in a receiver ofcommunication in a packetbased data network, for adaptive rate controlperformed at the receiving side in a packet data network, said productcomprising computer readable code means which, when run on a computer isarranged to receive from an application-specific control means at leastone configuration parameter in order to control the function of thecomputer program product.
 12. A computer program product according toclaim 11, further arranged to monitor the quality of the rate controland output a set of quality data indicative of this quality.
 13. Acomputer program product according to claim 11, further arranged totransmit said quality data to the application-specific control means.